In color machine vision, computer vision, and image processing applications, image colors are typically vulnerable to image acquisition conditions. This affects the performance of color-based applications, such as color matching and segmentation. In order to improve the performance of color-based applications, it is therefore desirable to minimize the influence of image acquisition conditions. This can be achieved by applying a color correction method to each input image prior to any color-based application on the input images.
Color correction methods generally correct the colors of an input image with respect to those of a reference image. Known color correction methods can be grouped into two categories, referred to herein as “global” and “point-to-point” color mapping methods. Global color mapping methods employ the statistics of the colors of the input image and reference image. Point-to-point color mapping methods employ the colors of corresponding pixels in the input image and reference image. Generally, point-to-point color mapping methods aim to find a color mapping function that when applied to the color values of pixels in the input image returns the color values of the corresponding pixels in the reference image. Examples of global color mapping methods include Mean Approximation (MA), Mean-Variance Approximation (MVA), and Histogram Specification (HS). The MA technique adjusts the color values of each input image such that the mean (or average) of each input image matches the mean of the reference image. The MVA technique adjusts the color values of each input image such that the mean and the variance (or standard deviation) of each input image matches those of the reference image. The HS technique transforms the color values of each input image such that the color histogram of each input image matches the color histogram of the reference image.
Point-to-point color mapping techniques can be implemented “automatically”. That is, a single color mapping function can be calculated between an input image sample and the reference image, and this color mapping function can then be applied directly to all of the input images at runtime. In addition, point-to-point color mapping techniques typically achieve more accurate results than global color mapping techniques. However, point-to-point techniques require “pixel correspondence” between the input image sample and the reference image. That is, point-to-point techniques require an input image sample and reference image whose contents are perfectly aligned (which is not always possible in practice) or require that pairs of corresponding pixels in the input image sample and reference image be provided by another means (e.g., entered by a user).
Global color mapping techniques do not require pixel correspondence and are therefore more flexible than point-to-point techniques. However, global color mapping techniques typically achieve less accurate results than point-to-point techniques. For example, some global color mapping techniques, such as MA and MVA, can correct only certain types of color distortion. Other global color mapping techniques, such as HS, are more versatile than MA and MVA, but can introduce color artifacts (i.e. false colors). Also, global color mapping techniques cannot always be implemented automatically. Indeed, with HS, it is generally not possible to find a single color mapping function that can be applied directly to all input images. The histogram matching process must therefore be repeated for each new input image, which is time-consuming and impractical for real time applications.
There is therefore a need for an improved image color correction technique.